﻿var hay_errores = false;
var hay_error_nombre = false;
var combo1Ok = false;
var combo2Ok = false;


$(document).ready (function () {
	
	if(modo_edicion)
	{
		combo1Ok = true;
		combo2Ok = true;
	}
	
	$('#form_agregar_raqueta').submit(function () {	
		return true; validarFormulario();
	});	
	
	$('#combo_modelo').live('change',function(){
		if(validarOpcionCero($('#combo_modelo option:selected').val()))
		{
			combo2Ok = true;
			$('#modelo_error').hide();
		}
		else
			combo2Ok = false;	
		$('#input_nombre_raqueta').blur();
	});
	
	$('#input_nombre_raqueta').blur(function (){
	
			$('#input_nombre_raqueta').val(trim($('#input_nombre_raqueta').val(), ' '))// quito los espacios iniciales y finales en el nombre
			if(combo1Ok && combo2Ok)
			{ 
				if(validarVacio($('#input_nombre_raqueta').val()))
				{
					if(modo_edicion)
						$identificacion = obtenerParametrosURL('combo_raqueta_edicion');
					else
						$identificacion = "-1";		
					$.ajax({
					  	type: "POST",
						url: "validaciones.php",
						data: {input_nombre_raqueta: $('#input_nombre_raqueta').val(), id: $identificacion, combo_modelo: $('#combo_modelo option:selected').val(), action: "verificarNombre"}
					   }).done(function(valido){
				        	if(valido == "false")
				        	{	
				        		hay_error_nombre =  true;
				        		$('#nombre_error').hide();
				        		$('#existente_error').show(); 
				        		
				        	}
				        	else
				        	{
				        		hay_error_nombre =  false;
				        		$('#existente_error').hide();
				        		$('#nombre_error').hide();
				        	}
				        });
				}
			}
	});
});

function validarFormulario()
{	
	hay_errores = false;
	ocultarErrores();

	if(validarOpcionCero($('#combo_marca option:selected').val()))
	{
		if(!validarOpcionCero($('#combo_modelo option:selected').val()))
		{
			$('#modelo_error').show();
			hay_errores = true;
		}
	}
	else
	{
		$('#marca_error').show();
		hay_errores = true;
	}
	
	if(!validarVacio($('#input_nombre_raqueta').val()))
	{
		$('#nombre_error').show();
		hay_errores = true;
	}
	

	if(!validarVacio($('#input_descripcion').val()))
	{
		$('#descripcion_error').show();
		hay_errores = true;
	}
	
	if (validarVacio($('#input_precio').val()))
	{	if(!validarPrecio($('#input_precio').val()))
		{
			$('#precio_error').show();
			hay_errores = true;
		}
	}
	else
	{
		$('#precio_error').show();
		hay_errores = true;
	}
	
	if(!validarVacio($('#input_etiquetas').val()))
	{
		$('#etiquetas_error').show();
		hay_errores = true;
	}
	
	if(!modo_edicion)
		hay_errores = !validarImagen("1") || hay_errores;

	hay_errores = !validarImagen("2") || hay_errores;
	hay_errores = !validarImagen("3") || hay_errores;
	hay_errores = !validarImagen("4") || hay_errores;
	hay_errores = !validarImagen("5") || hay_errores;
	hay_errores = !validarImagen("6") || hay_errores;
	hay_errores = hay_error_nombre || hay_errores;
	
	if(hay_errores) 
	{
		$('#error_final').show();
		return false;
	}
	else
		return true;
}

function ocultarErrores()
{
	$('#marca_error').hide();
	if(validarOpcionCero($('#combo_marca option:selected').val()))
		$('#modelo_error').hide();
	$('#precio_error').hide();
	$('#etiquetas_error').hide();
	$('#imagen_error').hide();
	$('#nombre_error').hide();
	$('#error_final').hide();
	$('#descripcion_error').hide();
	ocultarErroresImagen("1");
	ocultarErroresImagen("2");
	ocultarErroresImagen("3");
	ocultarErroresImagen("4");
	ocultarErroresImagen("5");
	ocultarErroresImagen("6");
}

function ocultarErroresImagen(id)
{
	$("#imagen_error"+id).hide();
	$("#formato_error"+id).hide();
}

function validarImagen(id)
{		
	if($("#combo_explorar_"+id+" option:selected").val()==1) // URL
	{
		if(id == "1")
		{
			if(!validarVacio($("#input_explorar_"+id).val()))
			{
				$("#imagen_error"+id).show();
				return false; 
			}
			else 
				if(!validarURL($("#input_explorar_"+id).val()))
				{
					$("#formato_error"+id).show();
					return false; 
				}
		}
		else // no es la imagen 1
		{
			if(validarVacio($("#input_explorar_"+id).val()))
				if(!validarURL($("#input_explorar_"+id).val()))
				{
					$("#formato_error"+id).show();
					return false; 
				}
			
		}
	}
	else
	{
		if(id == "1")
		{
			if(!validarVacio($("#archivo_imagen"+id).val()))
			{
				$("#imagen_error"+id).show();
				return false; 
			}
			else
				if(!esImagen($("#archivo_imagen"+id).val()))
				{
					$("#formato_error"+id).show();
					return false;
				}
		}
		else
		{
			if(validarVacio($("#archivo_imagen"+id).val()))
				if(!esImagen($("#archivo_imagen"+id).val()))
				{
					$("#formato_error"+id).show();
					return false;
				}
		}
	}
	return true;
}

function validarURL(url){
	
	if (url.length > 0) 
	{
		var expresionRegular = /^(https?:\/\/){1}([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \?=.-]*)*\/?$/;
		if (!expresionRegular.test(url)) 
			return false;
	}
	else
		return false;
	return esImagen(url);
}

function esImagen(url)
{
	var urlLower = url.toLowerCase();
	if ((urlLower.indexOf('.gif')!= -1)||(urlLower.indexOf('.png')!= -1)||(urlLower.indexOf('.jpg')!= -1)||(urlLower.indexOf('.jpeg')!= -1))
		return true;
	else
		return false;
}

function validarPrecio(precio)
{
	if (precio.length > 0)
	{
		var b = /^\d+[.]\d+$/;		
		if (!b.test(precio)) 
			return false;
	}
	else
		return false;
	return true;	
}

function validarOpcionCero(value)
{
	if(value == 0)
		return false
	else
		return true;
}

function validarVacio(campo)
{
	for (var i = 0; i < campo.length; i++) {
		if (campo.charAt(i) != ' ') {
			return true;
		}
	}
	return false;
}

/**
*
*  Javascript trim, ltrim, rtrim
*  http://www.webtoolkit.info/
*
**/
 
//unión de ambas funciones ltrim y rtrim
function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}
 
//ltrim quita los espacios o caracteres indicados al inicio de la cadena
function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
//rtrim quita los espacios o caracteres indicados al final de la cadena
function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}